### deferred_t

Class used to specify that an asynchronous operation should return a function object to lazily launch the operation.

    class deferred_t

##### Types

Name | Description
--- | ---
as_default_on_t | Type alias to adapt an I/O object to use deferred_t as its default completion token type.
executor_with_default | Adapts an executor to add the deferred_t completion token as the default.

##### Member Functions

Name | Description
--- | ---
as_default_on [static] | Function helper to adapt an I/O object to use deferred_t as its default completion token type.
deferred_t [constructor] | Default constructor.
operator() | Creates a new deferred from a function. — Passes through anything that is already deferred.
values [static] | Returns a deferred operation that returns the provided values.
when [static] | Creates a conditional object for branching deferred operations.

The `deferred_t` class is used to indicate that an asynchronous operation should return a function object which is itself an initiation function. A `deferred_t` object may be passed as a completion token to an asynchronous operation, typically as the default completion token:

    auto my_deferred_op = my_socket.async_read_some(my_buffer);

or by explicitly passing the special value `asio::deferred:`

    auto my_deferred_op
     = my_socket.async_read_some(my_buffer,
         asio::deferred);

The initiating function (async_read_some in the above example) returns a function object that will lazily initiate the operation.

##### Requirements

Header: `asio/deferred.hpp`

Convenience header: `asio.hpp`